home *** CD-ROM | disk | FTP | other *** search
/ Cracking 1 / Cracking I..iso / Tools / Ostatní / aPLib v0.26b / examples / vpascal / aplibu.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2001-12-15  |  2.2 KB  |  98 lines

  1. unit aplibu;
  2.  
  3. (*
  4.  * aPLib compression library  -  the smaller the better :)
  5.  *
  6.  * VPascal interface to aplib.lib
  7.  *
  8.  * Copyright (c) 1998-2000 by Joergen Ibsen / Jibz
  9.  * All Rights Reserved
  10.  *
  11.  * -> VPascal by Veit Kannegieser, 23.09.1998
  12.  *)
  13.  
  14. interface
  15.  
  16. const
  17.   aP_pack_continue=1;
  18.   aP_pack_break   =0;
  19.  
  20. type
  21.   (*$cdecl+*)
  22.   apack_status=function(w1,w2:longint):longint;
  23.   (*$cdecl-*)
  24.   workmem_type=array[0..640*1024-1] of byte;
  25.  
  26. (*$ORGNAME+*) (* aplibu@_aP_pack -> _aP_pack *)
  27.  
  28. function _aP_pack(var quelle;
  29.                   var ziel;
  30.                   laenge:longint;
  31.                   var workmem:workmem_type;
  32.                   status:apack_status):longint;cdecl;
  33.  
  34. function _aP_workmem_size(laenge:longint):longint;cdecl;
  35.  
  36. function _aP_depack_asm(var quelle,ziel):longint;cdecl;
  37.  
  38. function _aP_depack_asm_fast(var quelle,ziel):longint;cdecl;
  39.  
  40. (*$ORGNAME-*)
  41.  
  42. function cb0(w1,w2:longint):longint;cdecl;
  43. function cb1(w1,w2:longint):longint;cdecl;
  44.  
  45.  
  46. implementation
  47.  
  48. (* if you want abort compression with Esc uncomment following line *)
  49. (*uses crt; *)
  50.  
  51. function _aP_pack(var quelle;
  52.                   var ziel;
  53.                   laenge:longint;
  54.                   var workmem:workmem_type;
  55.                   status:apack_status):longint;external;
  56.  
  57. function _aP_workmem_size(laenge:longint):longint;external;
  58.  
  59. function _aP_depack_asm(var quelle,ziel):longint;external;
  60.  
  61. function _aP_depack_asm_fast(var quelle,ziel):longint;external;
  62.  
  63. (*$L ..\..\lib\watcom\aplib.lib*)
  64. (* $L depack.obj   *)
  65. (* $L depackf.obj  *)
  66. (* $L aplib.obj    *)
  67.  
  68.  
  69.  
  70. (* callback samples for _aP_pack *)
  71.  
  72. function cb0(w1,w2:longint):longint;assembler;(*$FRAME-*)(*$USES NONE*)
  73.   asm
  74.     mov eax,aP_pack_continue
  75.   end;
  76.  
  77. function cb1_(w1,w2:longint):longint;
  78.   begin
  79.     write(w1:8,w2:8,^m);
  80.     cb1_:=aP_pack_continue;
  81.     (* if you want abort compression with Esc uncomment following line *)
  82.     (*if keypressed then
  83.       if readkey=#27 then
  84.         cb1_:=aP_pack_break; *)
  85.   end;
  86.  
  87. function cb1(w1,w2:longint):longint;assembler;(*$FRAME+*)(*USES NONE*)
  88.   asm
  89.     pushad
  90.       push w1
  91.         push w2
  92.           call cb1_
  93.       mov [ebp-4],eax (* POPAD restores EAX *)
  94.     popad
  95.   end;
  96.  
  97. end.
  98.